% subsection of Project Overview Statement

\section{Objectives}\label{sec:objectives}
This section outlines the tasks the authors currently have planned to
perform to adequate address the problem described in \autoref{sec:problem} and
fulfil the goal pictured in \autoref{sec:goal}.
 
\subsection{Project Management Approach}\label{sec:projectmanagmentapproach}
There are some facts, which make the project hard to manage: The project members do not have much domain knowledge in the projects context,
they do not have expertise in the software products to use for solving the
underlying problem and the projects content was only roughly contoured during the first
interviews with the clients.

As consequence an \emph{Adaptive Project Management} approach will be used to
perform the project. Fortunately this is supported by the on-campus
availability of both clients. It is planed to make use of this circumstance by
involving the clients into the development process to ensure the realisation of
the system as close to the clients needs as possible.

\subsection{Design}
As already mentioned the projects nature is mainly a software implementation
targeting on the integration of independent already existing software products.
This includes that human user interaction is limited. Therefore not much
weight lies on a high sophisticated HMI (Human Machine Interface). But in
contrast the API (Application Programmers Interface) of the three involved
software products should earn reasonable attention. Their task can be
summarized as follows:

\begin{description}
  \item[SAL] Provider of data gathered by connected sensor networks.
  \item[Data Turbine] Middleware which takes the part of a transport layer. 
  \item[SRB] Consumer of the transmitted data to store for further usage.
\end{description}

A coarse grained sketch is presented in \autoref{fig:design_3} to visualize the
dependencies between the software products. The yellow arrows in between
represent the necessary glue to connect the different worlds. The development
of this glue is the main objective of this project. 

\begin{figure}[htb]
	\centering
		\includegraphics[width=0.4\textwidth]{figures/design_3.pdf}
	\caption{The glue to connect producer and consumer via a middleware.}
	\label{fig:design_3}
\end{figure}

To breakdown the overall project into subparts to reduce the scope for certain
development steps, the authors choosed the following structure:

\begin{description}
  \item[Infrastructure] Tasks to be performed for both producer and consumer,
  like the setup of a development environment including a configuration
  managment, installation of the middleware Data Turbine and the establishment
  of a test suite.
  \item[Producer Glue] This part addresses all necessary efforts to send data
  from SAL into the middleware. This includes the installation of SAL and the
  development of a suitable wrapper or client which fetches available data from
  SAL as well as routines to promote those data into the middleware. Therefore
  ways how to register and unregister certain data formats like streaming media
  have to be determined.
  \item[Consumer Glue] This part addresses all necessary efforts to fetch data
  by a consumer out of the middleware to process or store for further
  purpose. As well ways how to subscribe and unsubscribe for certain data
  sources and certain data formats like streaming media have to be determined.  
\end{description}

\subsection{Implementation}

In respect to the choosen adaptive project managment approach (see
\autoref{sec:projectmanagmentapproach}) the realisation of the described system
will be performed using iterative cycles. 

\subsubsection{Infrastructure}\label{sec:infrastructure}
As development environment the \emph{Eclipse IDE} is selected \cite{eclipse}. It
supports the implementation of the necessary JAVA code, source code management with
\emph{Subversion} as well as the preparation of project documents with \LaTeX.
Therefore \emph{Eclipse IDE} forms a single IDE for all the projects development
tasks.

For the source code management, which also includes the documentation to the
project \emph{Subversion} is used. As service provider for hosting the related
project management server services \emph{Google Code} was determined to fit the
project needs best (see \cite{saltcode}). It provides a \emph{Subversion}
repository, a project Wiki as well as a issue tracking system to be used for
managing software development and maintainance tasks while promising to take
care of data security in terms of a sufficent backup concept. Further all
project members have access to the project artifacts independent of their
location\footnote{This is essential for the off-campus living project members.}
as long they have access to the internet. Also this ensures the outcome of the
one-semester based project is accessible by a broader community for usage and improvement.

For the installation of the middleware Data Turbine some adequate PC hardware is
provided by the client. The necessary steps to setup an operational system
will be recorded as they are part of the requirements (see
\autoref{sec:functionalrequirements}). 

To support the agile idea of co-location of the project members, the project
supervisor will provide an adequate team space. The establishment of the
described infrastructure conditions any further proceding and will be issued within the first project cycle.

\subsubsection{Producer Glue}
An operative SAL installation is essential for the producer part of the
project. The client already has provided sufficient information to establish
a SAL server which can be accessed via a SAL client.

According to the clients requirements (see \autoref{sec:functionalrequirements}) a new
instance of a SAL client will be realised, which polls the sensors attached
to a SAL server using RMI (Remote Method Invocation). The interval of the
polling depends on the type of the sensor and has to be configurable to
respect the different needs for different types of data (discrete measurements
of physical attributes, video streaming, etc.).

The implementation will make use of JAVA, due to the fact both SAL and
Data Turbine are providing JAVA APIs, only.

\subsubsection{Consumer Glue}
An operative SRB (Storage Resource Broker) is essential for the consumer part
of the project. The client has promised to grant access to an SRB for
developement issues. 

Further details related to used technologies for implementation have to be
determined, following one Poppendiek's Lean Software Management maxim
\textit{``Decide as late as possible''} (see \cite{poppendiek}).

\subsection{Test}
The authors amplify the need for testing by setting up appropriate test
routines using the JUnit test framework at the beginning of each cycle. This
helps to reduce problems caused by ambigous understanding of the related
requirements as well as to declare a unit of software as finished successfully
before having the unit successful tested.

Further, unit test procedures might improve maintainability due to reusability
after slight modification of parts of the system in future as well as they help
future developers to understand certain parts of the system.

% EOF